package com.huaxin.hxfiles.common;

public class FileUtils {
    /**
     * 格式化文件大小为可读单位（KB, MB, GB）
     */
    public static String formatFileSize(long bytes) {
        if (bytes < 0) return "0 B";
        if (bytes == 0) return "0 B";

        final String[] units = {"B", "KB", "MB", "GB", "TB"};
        int unitIndex = 0;
        double size = bytes;

        while (size >= 1024 && unitIndex < units.length - 1) {
            size /= 1024.0;
            unitIndex++;
        }

        // 保留一位小数（如 23.9 MB），如果是整数则不显示小数
        if (size == (long) size) {
            return String.format("%d %s", (long) size, units[unitIndex]);
        } else {
            return String.format("%.1f %s", size, units[unitIndex]);
        }
    }
}
